# 斐波那契数列
def fib(n):
    if n < 2:
        return n
    else:
        return fib(n - 2) + fib(n - 1)

print(fib(7))

# 快排
def quick(qlist):
    if len(qlist) == 0:
        return qlist
    else:
        qb = qlist[0]
        qa = quick([m for m in qlist[1:] if m < qb])
        qc = quick([l for l in qlist[1:] if l >= qb])
        return qa + [qb] + qc

print("快速排序：", quick([23, 52, 232, 2, 45]))



# 随机插入排序
def insertQuick(list):
    for i in range(1, len(list)):
        key = list[i]  # 取出list的第一位数，42
        j = i - 1  # 取出list的第一位减1 ，0游标的数据 3432
        while j >= 0 and key < list[j]:  # 当0 大于等于0  42小于3432时 执行下边代码
            list[j + 1] = list[j]  # list[0]== 3432 赋值给 list [0 +1]，，第1个数放第2位上，直接替换，
            j -= 1  # j == -1
            list[j + 1] = key  # 42 赋值给 list[0]的位置，拍第一位 替换  ， 因为上边 j变成了-1所以下边在加一变成0
    return list

"""
1、for循环取出列表的第一位元素 i
2、j是i1-1的前一个元素
3、while 元素游标大于等于=  list第1个元素小于第0值时，
4、第0个元素赋值给 列表 0+1的位置
5、j - 1  变成负数，之后会跳出while循环
6、把第一个元素赋值给列表 第0个数上，实现了位置交换
"""

print(insertQuick([3432, 42, 4252, 1, 123, 32]))

# 99乘法表
def n_n():
    for i in range(1, 10):
        for j in range(1, i + 1):
            print(f'{j} * {i} = {j*i}', end=' ')
        print('\t')
n_n()

# 统计字符串中出现次数最多的字符和次数
def strNumber():
    s1 = "jdsajkhhhhhorjqfsdfweo"
    d1 = {}
    for i in s1:
        if i not in d1:
            d1[i] = 1
        else:
            d1[i] += 1
    for k, v in d1.items():
        if v == max(d1.values()):
            print(k, v)
strNumber()



# Switch语句
sD = {"a":"123", "b":"3213", "c":"3132", "d":"313123", "e":"r2", }
# userInput = input("请输入呗：")
print(sD["c"])



# map()映射方法
def add(i):
    return i **i
ayw = map(add, [2, 4, 1, 2, 34, 5])

print(ayw.__next__())
print(ayw.__next__())
print(ayw.__next__())
print(ayw.__next__())

# 获取list索引位置
list1 = [3432, 42, 4252, 1, 123, 32]
print(list1.index(1))

# 判断字符串中大写的几个，小写的几个
s1 = "DMASKDJjdkJASKDjakdjkaDJAjdkads"
k = 0
v = 0
for i in s1:
    if i.islower():

        k += 1
    elif i.isupper():
        v += 1
print(f'小写的有{k}个，大写的有{v}个')

# 修改元组内部元素不可修改
t1 = (1, 2, 3, 4, [32, 542, "32v", 32, [3, 31], {"w":3}])
t1[4][0] = "hello,world!"
print(t1)
